package com.ruoyi.common.core.Entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.sql.Timestamp;
import java.util.HashMap;
import java.util.Map;

/*
    商城登录用户信息实体类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("商城用户对象")
public class UserInfo {
    @ApiModelProperty("省平台用户ID")
    private Long id; //省平台用户ID
    @ApiModelProperty("用户真实姓名")
    private String real_name; //用户真实姓名
    @ApiModelProperty("证件号")
    private String card_num; //证件号
    @ApiModelProperty("证件类型")
    private Integer card_type; //证件类型
    //private int card_types;  //证件类型数组
    /* 证件类型
    1 代表居民身份证
    2 代表港澳居民来往内地通行证
    3 代表澳门通行证
    4 代表台湾居民来往大陆通行证
    5 代表护照
    */
    @ApiModelProperty("工行社保卡号")
    private String icbc_card_num; //工行社保卡号
    @ApiModelProperty("用户头像地址")
    private String avatar; //用户头像地址
    @ApiModelProperty("用户手机号")
    private String mobile; //用户手机号
    @ApiModelProperty("用户志愿服务时长")
    private Double hours; //用户志愿服务时长
    @ApiModelProperty("用户拥有的鲜豆（省平台该属性名为 score）")
    private Integer beans; //用户拥有的鲜豆  省平台该属性名为 score
    @ApiModelProperty("用户星级（省平台该属性名为 certificate）")
    private Integer star; //用户星级        省平台该属性名为 certificate
    //private int stars; //用户星级数组
    /*  星级
    0 代表没有星级
    1 代表一星级
    2 代表二星级
    3 代表三星级
    4 代表四星级
    5 代表五星级
    */
    @ApiModelProperty("该用户今天在商城消费的鲜豆数")
    private Integer beans_spend_day; //该用户今天在商城消费的鲜豆数
    @ApiModelProperty("该用户在商城消费的鲜豆总数")
    private Integer beans_spend_total; //该用户在商城消费的鲜豆总数
    @ApiModelProperty("该用户今天在商城消费的优惠券数量（指的是用鲜豆兑换优惠券，不涉及线下纸质券兑换）")
    private Integer coupons_spend_day; //该用户今天在商城消费的优惠券数量（指的是用鲜豆兑换优惠券，不涉及线下纸质券兑换）
    @ApiModelProperty("该用户今天在商城消费的优惠券总额度")
    private Double coupons_value_spend_day; //该用户今天在商城消费的优惠券总额度
    @ApiModelProperty("该用户在商城消费的优惠券总数（指的是用鲜豆兑换优惠券，不涉及线下纸质券兑换）")
    private Integer coupons_spend_total; //该用户在商城消费的优惠券总数（指的是用鲜豆兑换优惠券，不涉及线下纸质券兑换）
    @ApiModelProperty("该用户在商城消费的优惠券总额度")
    private Double coupons_value_spend_total; //该用户在商城消费的优惠券总额度
    @ApiModelProperty("用户首次登录时间")
    private Timestamp first_login_time; //用户首次登录时间
    @ApiModelProperty("用户最近一次登录的时间")
    private Timestamp last_login_time; //用户最近一次登录的时间
    private Map<String,Object> params; //请求参数

    public Map<String, Object> getParams() {
        if (params == null) {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }
}
